<?php
class Contacts_ConfigInformationController extends XPHP_Controller
{
	public function _init()
	{
		$this->loadLayout('ControlPanel/XAdmin');
	}
	
	#[Authorize(roles = 'Administrator')]
	public function indexAction()
	{
		$modelLang = new Models_Language();
		$modelInfor = new Areas_Contacts_Models_Information();
		//Lấy ra toàn bộ thông tin của ngôn ngữ hiện tại
		$arrInfor = $modelInfor->db->where('lang_id', $_SESSION['lang_id'])
								   ->order_by('position', 'ASC')
								   ->get()
								   ->result();
		$deleteUrl = $this->url->action("delete");
		for ($i = 0; $i < count($arrInfor); $i ++) {
        	$editUrl = $this->url->action('edit', array($arrInfor[$i]->id));
        	$arrInfor[$i]->action = "<a href='{$editUrl}' class='button ico-btn ico-text-edit tool-tip' title='Sửa' rel='edit'>
            					</a>
            					<a href='{$deleteUrl}' class='button ico-btn ico-text-trash tool-tip' item='{$arrInfor[$i]->name}' title='Xóa' 
            					data='{$arrInfor[$i]->id}' rel='delete'>
            					</a>";
		}
		$this->view->arrInfor = $arrInfor;
		return $this->view();
	}
	
	#[Authorize(roles = 'Administrator')]
	public function createAction()
	{
		
		return $this->view();
	}
	
	#[Authorize(roles = 'Administrator')]
	public function createPost(Areas_Contacts_Models_Information $mode = null)
	{
		if ($this->model->validate()) {
            if ($this->model->insert())
                return $this->json(
                array('success' => true, 
                'message' => 'Thêm mới thành công'));
            else
                return $this->json(
                array('success' => false, 
                'message' => 'Xảy ra lỗi khi thêm mới'));
        } else
            return $this->json(
            array('success' => false, 
            'message' => 'Thông tin nhập vào chưa hợp lệ'));
	}
	
	#[Authorize(roles = 'Administrator')]
	public function editAction($args)
	{
		//Lấy ra thông tin
        $model = new Areas_Contacts_Models_Information($args[0]);
        //Trả về view
        return $this->view($model);
    }
    
    #[Authorize(roles = 'Administrator')]
    public function editPost ($args, Areas_Contacts_Models_Information $model = null)
    {
        if ($this->model->validate()) {
            if (! $this->model->exists(
            array('name' => $this->model->name, 'id !=', $this->model->id))) {
                if ($this->model->update())
                    return $this->json(
                    array('success' => true, 
                    'message' => 'Cập nhật thông tin thành công'));
                else
                    return $this->json(
                    array('success' => false, 
                    'message' => 'Xảy ra lỗi khi cố cập nhật thông tin'));
            } else
                return $this->json(
                array('success' => false, 
                'message' => 'Tên này đã tồn tại trong hệ thống'));
        } else {
            return $this->json(
            array('success' => false, 
            'message' => 'Thông tin nhập vào chưa hợp lệ'));
        }
	}
	
	#[Authorize(roles = 'Administrator')]
	public function deletePost(Areas_Contacts_Models_Information $model = null)
	{
		if ($this->model->delete())
            return $this->json(
            array('success' => true, 
            'message' => 'Xóa thành công'));
        else
            return $this->json(
            array('success' => false, 
            'message' => 'Xảy ra lỗi khi cố gắng xóa'));
	}
}